package com.tanhua.server.controller;

import com.tanhua.domain.db.Settings;
import com.tanhua.domain.db.UserInfo;
import com.tanhua.server.service.SettingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/users")
public class SettingController {


    @Autowired
    private SettingService settingService;

    //    用户通用设置 - 读取
//    请求方式：get
//    请求路径：/users/settings
//    请求参数：请求头上Authorization：token值
//    返回结果：settingsVo
    @GetMapping(value = "/settings",name = "读取用户通用设置")
    public ResponseEntity querySettings() throws Exception{
        return settingService.querySettings();
    }
    //    保存陌生人问题
//    请求方式：post
//    请求路径：/users/questions
//    请求参数：请求头上Authorization：token值  Body {content:"xxxxxxxxx"}
//    返回结果：无
    @PostMapping(value = "/questions",name = "保存陌生人问题")
    public ResponseEntity saveQuestions(@RequestBody Map param) throws Exception{
        String content = (String) param.get("content");
        return settingService.saveQuestions(content);
    }
//    保存通知设置
//    请求方式：post
//    请求路径：/users/notifications/setting
//    请求参数：请求头上Authorization：token值  Body
//    返回结果：无
    @PostMapping(value = "/notifications/setting",name = "保存通知设置")
    public ResponseEntity saveSettings(@RequestBody Settings settings) throws Exception{
        return settingService.saveSettings(settings);
    }


//    查询黑名单
//    请求方式：post
//    请求路径：/users/blacklist
//    请求参数：请求头上Authorization：token值  query参数 page  pagesize
//    返回结果：PageResult
    @GetMapping(value = "/blacklist",name = "查询黑名单")
    public ResponseEntity queryBlacklist(@RequestParam(defaultValue = "1") Integer page,
                                         @RequestParam(defaultValue = "10")Integer pagesize) throws Exception{
        return settingService.queryBlacklist(page,pagesize);
    }
//    移除黑名单
//    请求方式：delete
//    请求路径：/users/blacklist/:uid
//    请求参数：请求头上Authorization：token值 路径参数 uid
//    返回结果：无
    @DeleteMapping(value = "/blacklist/{uid}",name = "移除黑名单")
    public ResponseEntity deleteBlacklist(@PathVariable("uid") Long blackUserId) throws Exception{
        return settingService.deleteBlacklist(blackUserId);
    }
}
